#用两个栈来实现一个队列，完成队列的Push和Pop操作。 队列中的元素为int类型。

# 栈是先进后出，队列是先进先出
# 所谓的实现，也就是要实现关键方法，那么就是队列的pop,push方法
# 但是python没有直接的栈api，所以要自己先实现一个栈
class Stack:
    def __init__(self):
        self.stack = []
    def push(self, data):
        """
        进栈函数
        """
        self.stack.append(data)
    def pop(self):
        """
        出栈函数，
        """
        return self.stack.pop()

class Stack_list:
    def __init__(self):
        self.stack1 = Stack()
        self.stack2 = Stack()
    def push(self,num):
        self.stack1.push(num)
    def pop(self):
        if len(self.stack2.stack)!=0:
            return self.stack2.pop()
        elif len(self.stack1.stack)!=0:
            while self.stack1.stack:
                self.stack2.push(self.stack1.pop())
            return self.stack2.pop()
        else:
            return None


my_list = Stack_list()
my_list.push(1)
my_list.push(2)
my_list.push(3)
my_list.push(4)
my_list.push(5)

print(my_list.pop())
print(my_list.pop())
print(my_list.pop())
print(my_list.pop())
print(my_list.pop())
print(my_list.pop())





